#include <iostream>
using namespace std;

template<class T>
struct Less{
    bool operator()(const T& l, const T& r){
        return l < r;
    }
};

//偏特化
template<class T>
struct Less<T*>{
    bool operator()(const T* l, const T* r){
        return *l < *r;
    }
};

//全特化
template<>
struct Less<int*>{
    bool operator()(const int* l, const int* r){
        return *l < *r;
    }
};

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
